﻿using WMS.FC.Domain.DataTransferObject.Menu;
using WMS.FC.Domain.DomainObject.System;

namespace WMS.FC.Application.Menu.Interface
{
    public interface IMenuService
    {
        /// <summary>
        /// 获取菜单列表
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> GetMenuList(GetMenuListDTO dTO);

        /// <summary>
        /// 获取全部菜单
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> GetAllMenuList(GetMenuListDTO dTO);

        /// <summary>
        /// 获取菜单配置
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> GetMenuConfig(GetMenuConfigDTO dTO);

        /// <summary>
        /// 添加菜单
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> AddMenu(AddMenuDTO dTO);

        /// <summary>
        /// 删除菜单
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> DeleteMenu(DeleteMenuDTO dTO);

        /// <summary>
        /// 修改菜单
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> EditMenu(EditMenuDTO dTO);

        /// <summary>
        /// 生成列
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> GenerateColumns(GenerateColumnDTO dTO);

        /// <summary>
        /// 复制列
        /// </summary>
        /// <param name="dTO"></param>
        /// <returns></returns>
        Task<ResponseBase> CopyColumns(CopyColumnDTO dTO);
    }
}
